//
//	File: OyRenderer.h
//

#ifndef OYRENDERER_H
#define OYRENDERER_H

#include "OyRenderDevice.h"
#include <tchar.h>

// S T R U C T S ///////////////////////////////////////////////////
/**
 * Just used to create, get a pointer to, and release a render device,
 * wether this is d3d or opengl or whatelse depends on dll which is 
 * selected in the CreateDevice() call.
 */
class OyRenderer
{
public:
	OyRenderer(HINSTANCE hInst);
	~OyRenderer(void);

	HRESULT				CreateDevice(const TCHAR *APIStr);
	void				Release(void);
	OyRenderDevice*		GetDevice(void) { return m_pDevice; }
	HINSTANCE			GetMoudle(void) { return m_hDLL; }

private:
	OyRenderDevice		*m_pDevice;
	HINSTANCE			m_hInst;
	HMODULE				m_hDLL;

};

typedef class OyRenderer *LPOYRENDERER;

#endif